#include <string>
#include <iostream>

using namespace std;

// k = 2
// i == j pass
// 从 i 的位置截取 k 长子串 str1
// 从 j 的位置截取 k 长子串 str2
// if str1 == str2
// 相等，k = 2 不可行
// 不相等，向后移动 j
// 直到 i == j, i 之前所有的子串都查过了 => i += 1 => j = 0
// A B C D A B C
//       ^i
// ^j
// guess = path.size()
// 找是否存在长度为 1 的重复的子字符串
// 如果有
// 找是否存在长度为 4 的重复的子字符串
// 最短不重复子字符串

int main(int argc, char const *argv[])
{
  
  string path;
  int k = 1;

  for (;k <= path.size(); ++k) {
    // 找是否有长度为 k 的重复的子字符串
    bool identified = true; // 每一次寻找开始之前，我们都假设这一次的 K 是一个答案

    for (int i = 0; i + k <= path.size(); ++i) {
      for (int j = 0; j < i; ++j) {
        string str1 = path.substr(i, k);
        string str2 = path.substr(j, k);
        
        if (str1 == str2) {
          identified = false;
        }
      }
    }

    // 
    if (identified) {
      // 如果没找到重复的 K 长子串
      break;
    }
  }

  return k;
}
